package com.jy.wms.dao;

import com.jy.wms.common.base.BaseDao;
import com.jy.wms.pojo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
* @ClassName: WmsStockMoveMapper.java
* @Description: TODO(这里用一句话描述这个类的作用)
* @Author Yjs
* @Date Tue Nov 21 17:13:15 GMT+08:00 2017
*/
public interface WmsStockMoveMapper extends BaseDao<WmsStockMove> {

/**
 * 不确认添加
 * @param entity 实体对象
 * @return int
 */
 public Integer baseInsert(@Param("WmsStockMove") WmsStockMove entity);
 /**
  * 确认添加
  * @param entity 实体对象
  * @return int
  */
  public Integer baseInsert2(@Param("WmsStockMove") WmsStockMove entity);
 /**
  * 查询移动后库位ID(目标储位)数据
  * @param ydhkwid
  * @return
  */
 public WmsLibraryPosition searchMbKw(@Param("ydhkwid") String ydhkwid);

 /**
  * 查询库位内的货品
  * @param ydhkwid
  * @param hpbh
  * @param hppc
  * @return
  */
 public List<WmsStock> searchKcHp(@Param("ydhkwid") String ydhkwid, @Param("hpbh") String hpbh, @Param("hppc") String hppc);

    /**
     * 查询库位内的货品
     *
     * @param ydhkwid
     * @param hpbh
     * @param hppc
     * @return
     */
    public List<WmsStock> searchKcHp2(@Param("ydhkwid") String ydhkwid, @Param("hpbh") String hpbh, @Param("hppc") String hppc);

    /**
     * 移动后库位查询库存(查看是否被占用)
     *
     * @param ydhkwid
     * @return
     */
    public List<WmsStock> searchKcHp0(@Param("ydhkwid") String ydhkwid);
 /**
  * 添加库存移动明细
  * @param wmsStockMoveDetailed
  * @return
  */
 public Integer baseInsertDetail(@Param("WmsStockMoveDetailed") WmsStockMoveDetailed wmsStockMoveDetailed);

 /**
  * 查询货品所在库存信息
  * @param hpkcid
  * @return
  */
 public WmsStock searchKc2(@Param("hpkcid") String hpkcid);

 /**
  * 保存转移的库存信息
  * @param wmsStock
  * @return
  */
 public Integer saveKc(@Param("WmsStock") WmsStock wmsStock);
 /**
  * 更改库存待转移数量
  * @param hpkcid
  * @param zysl
  * @return
  */
 public Integer updateDzysl(@Param("hpkcid") String hpkcid, @Param("zysl") Integer zysl);

 /**
  *
  * @param hpkcid
  * @param zysl
  * @return
  */
 public Integer updateDzysl2(@Param("hpkcid") String hpkcid, @Param("zysl") Integer zysl);
 /**
  * 查询货主信息
  * @param hzid
  * @return
  */
 public WmsOwner searchHz(@Param("hzid") String hzid);

 /**
  * 作废按钮,更改库存移动状态,记录修改人
  * @param id
  * @param zfry
  * @param ydzt
  * @return
  */
 public Integer baseDeleteBathPrimaryKeys(@Param("id") String id, @Param("zfry") String zfry, @Param("ydzt") Integer ydzt);
    /**
     * 删除（根据ID删除）
     * @return int
     */
    public Integer deleteYdMx(@Param("id") String id);

 /**
 * 分页查询
 * @param entity 实体
 * @return List<WmsStockMove>
 */
 public List<WmsStockMove> baseSelectPage(@Param("WmsStockMove") WmsStockMove entity);

 /**
 * 查看库存转移信息
 * @param id 主键ID
 * @param ydzt
 * @return User
 */
 public WmsStockMove getWmsStockMoveById(@Param("id") String id, @Param("ydzt") Integer ydzt);

 /**
  * 查看库存转移明细信息
  * @param id
  * @return
  */
 public List<WmsStockMoveDetailed> getWmsStockMoveDetailById(@Param("id") String id);
/**
 *修改（根据主键ID修改）
 * @param entity 主键ID列表
 * @return int
 */
 public Integer baseUpdateByPrimaryKey(@Param("WmsStockMove") WmsStockMove entity);
 /**
  *  查询货品信息
  * @param hpbh
  * @return
  */
 public List<WmsGoods> searchHp(@Param("hpbh") String hpbh);

 /**
  * 查询属性为“正常/管控”,并且有效的库位
  * @param stringList
  * @param lx
  * @param sfyx
  * @param hzId
  * @param ckId
  * @return
  */
 public List<WmsLibraryPosition> searchKw(@Param("stringList") List<String> stringList, @Param("lx") String lx, @Param("sfyx") String sfyx, @Param("hzId") String hzId, @Param("ckId") String ckId, @Param("mc") String mc);
 /**
  * 查询库位组内属性为“正常/管控”,并且有效的库位
  * @param wmsGoodsList
  * @param stringList
  * @param lx
  * @param sfyx
  * @param hzId
  * @param ckId
  * @return
  */
 public List<WmsLibraryPosition> searchKwMx(@Param("wmsGoodsList") List<WmsGoods> wmsGoodsList, @Param("stringList") List<String> stringList, @Param("lx") String lx, @Param("sfyx") String sfyx, @Param("hzId") String hzId, @Param("ckId") String ckId, @Param("mc") String mc);

/**
 * 查询可移动库存
 * @param wmsStockMoveDetailed
 * @return
 */
public List<WmsStockMoveDetailed> searchKc(@Param("WmsStockMoveDetailed") WmsStockMoveDetailed wmsStockMoveDetailed);

/**
 * 判断移动状态是否全是未确认的数据
 * @param ydzt
 * @param ids
 * @return
 */
public List<WmsStockMove> searchConfirm(@Param("ydzt") Integer ydzt, @Param("ids") List<String> ids);

/**
 * 查询库存移动明细(根据库存移动主表ID)
 * @param ids
 * @return
 */
public List<WmsStockMoveDetailed> searchYdMx(@Param("ids") List<String> ids);

/**
 * 更改库存数量以及待转移数量
 * @param kcId
 * @param zysl
 * @return
 */
public Integer updateKcSl(@Param("kcId") String kcId, @Param("zysl") Integer zysl);
/**
 * 更改库存转移明细确认后生成的库存ID
 * @param zyMxId
 * @param kcId
 * @return
 */
 public Integer updateKcZyMx(@Param("zyMxId") String zyMxId, @Param("kcId") String kcId);

 /**
  * 更改库存移动状态
  * @param ids
  * @param ydzt1
  * @param qrr
  * @return
  */
 public Integer updateYdZt(@Param("ids") List<String> ids, @Param("ydzt1") Integer ydzt1, @Param("qrr") String qrr);

 /**
  * 查询库存移动明细信息
  * @param id
  * @return
  */
 public List<WmsStockMoveDetailed> searchYdMx2(@Param("id") String id);

    /**
     * 查询库存移动明细信息
     *
     * @param id
     * @return
     */
    public WmsStockMoveDetailed searchYdMx3(@Param("id") String id);
 /**
  * 更改库存数量(移动状态 0：未确认)
  * @param kydsl
  * @param hpkcid
  * @return
  */
 public Integer updateKcSl2(@Param("kydsl") String kydsl, @Param("hpkcid") String hpkcid);
 /**
  * 删除新库存(移动状态 1：确认)
  * @param xhpkcid
  * @return
  */
 public Integer deleteKc(@Param("xhpkcid") String xhpkcid);

    /**
     * 自动确认移动
     *
     * @param wmsStock
     * @return
     */
    public Integer updateKcSl3(@Param("WmsStock") WmsStock wmsStock);

    /**
     * 不自动确认移动
     *
     * @param wmsStock
     * @return
     */
    public Integer updateKcSl4(@Param("WmsStock") WmsStock wmsStock);

    /**
     * 确认功能原库存更改数据
     *
     * @param wmsStock1
     * @return
     */
    public Integer updateKcSl5(@Param("WmsStock") WmsStock wmsStock1);

    /**
     * 导出库存移动信息
     *
     * @param entity
     * @return
     */
    public List<WmsStockMove> exportWmsStockMove(@Param("WmsStockMove") WmsStockMove entity);
}
